import router from '@/router'
import store from '@/store'
import { getToken } from '@/utils/auth'

//  路由白名单
const whiteList = ['/404', '/login']
// 导航守卫
router.beforeEach(async (to, form, next) => {
  if (getToken()) {
    // 登陆了
    if (to.path === 'login') {
      next('/')
    } else {
      // 登陆了就会去别的页面
      //  判断有没有用户资料，没有就会请求
      // console.log(store.getters.name);
      //判断用户信息利里有没有name
      if (!store.getters.name) {
        // await store.dispatch('user/getUserpropfileAll')
        // 2、读取角色信息
        let { roles } = await store.dispatch('user/getUserpropfileAll')
        // console.log(roles);
        // 3、调用过滤筛选动态路由的actions，传入权限菜单标识
        let routes = await store.dispatch('permission/filterRoutes', roles.menus)
        // 添加动态路由映射数组
        // console.log(routes, 111111111111111);
        router.addRoutes([
          ...routes,
          // 404放在最后
          { path: '*', redirect: '/404', hidden: true }])
        // 再次进入导航守卫
        next(to.path)
      }
      else {
        next()
      }

    }
  } else {
    // 未登陆
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next('/login')
    }
  }
})
